A programmable logic switch (hereinafter also referred to as a logic switch) is a device that is used in field programmable gate arrays (FPGAs) and the like that need to reconfigure a logical operation circuit or a wiring circuit, and can switch on and off the logic switch in accordance with data stored in a memory. As the memory, a volatile memory such as a static random access memory (SRAM) is conventionally used, and therefore, the data disappears when the power supply is turned off. When the power supply is turned on, the data needs to be again written into the memory.
According to a known technique, a nonvolatile flash memory is used as a memory in a programmable logic switch. By this technique, one cell of a programmable logic switch is formed with two nonvolatile memory transistors and one switching transistor (hereinafter also referred to as a pass transistor). For example, flash memory transistors are used as the memory transistors, and a power supply voltage or 0 V is input to the gate of the switching transistor via one of the two flash memory transistors. As the logic switch has such a structure, the area can be made smaller than that in a case where an SRAM is used as the memory.
Meanwhile, some FPGAs use anti-fuse elements. In such an FPGA, a certain anti-fuse element is put into a low-resistance state. In this manner, wiring lines are electrically connected, to form various circuits.
An FPGA of this type characteristically has irreversible wiring line connections/disconnections. Therefore, there is no possibility that circuit information is unexpectedly changed. That is, such an FPGA can be used in situations where it is difficult to use the above described FPGA including flash memories. However, wiring lines that are once connected cannot be disconnected from one another. Therefore, programming of logical information can be performed basically only once.